#include"lottery_sys.h"
/*
 该函数用于：新用户的注册过程处理(包括用户名唯一化，密码错误处理及隐藏保护)
 无返回值
 参数:该用户链表头结点
notes:密码隐藏操作还未处理

 
 */
void user_reg(Buyer_t* user_head)
{
	if(!user_head)
	{
		return;
	}
	char tmpname[100] = {0};
	char tmpasswd[100] = {0};
	char tmpasswd2[100] = {0};
	Buyer_t* flag = NULL;		//用于存储重名的那个节点
	while(1)
	{
		printf("\t\e[1;33m欢迎来到彩票中心\n\e[0m");
		printf("\t请输入任意你喜欢的名字: ");
		scanf("%s",tmpname);
		cleaninput();
		flag = is_exists(user_head,tmpname);
		if(NULL == flag)
		{
			while(1)
			{
				printf("\t请输入你觉得靠谱的密码的密码：");
				system("stty -echo");
				scanf("%s",tmpasswd);
				//system("stty echo");
				cleaninput();
				printf("\n\t请\e[1;32m确认\e[0m你的密码：");
				//system("stty -echo");
				scanf("%s",tmpasswd2);
				system("stty echo");
				cleaninput();
				if(!strcmp(tmpasswd2,tmpasswd))
				{
					Buyer_t* cur = (Buyer_t*)calloc(1,sizeof(Buyer_t));
					if(!cur)
					{
						return;
					}
					//用户信息的赋值写入
					if(user_head -> next == NULL)
					{
						cur ->ID = 1000;		//前面的1000个用户ID留给可能存在的多个管理员或重要用户
//						printf("ID:%d\n", user_head ->next -> ID);
					}
					else
						cur -> ID = (user_head -> next -> ID) + 1;  //在最新的用户ID的基础上加1
					printf("\nID:%d\n", cur -> ID);
					strcpy(cur -> B_name,tmpname);
					strcpy(cur -> B_passwd,tmpasswd);
					cur -> next = user_head -> next;
					user_head -> next = cur;
					printf("\t\e[1;33m恭喜你，注册成功！\n\e[0m");
					sleep(1);
					break;
				}
				else
					printf("对不起，你两次的密码不一致，请继续！\n");
			}
			break;
		}
		else
		{
			printf("\t\e[1;31m用户名已存在，要不你换一个？\n\e[0m");
		}
	}
}
